#pragma once
#include "d3dHeader.h"

class RenderSystem;

class D3DDemo
{
public:
	D3DDemo(void);
	virtual ~D3DDemo(void);

	virtual bool Setup()
	{
		// Nothing to setup in this sample.

		return true;
	}

	virtual void Cleanup()
	{
		// Nothing to cleanup in this sample.
	}

	virtual bool Display(float timeDelta) = 0;

	bool InitD3D(
		HINSTANCE hInstance,
		int width,
		int height,
		bool windowed,
		D3DDEVTYPE deviceType
		);

	void destroyD3D();

	int EnterMsgLoop(		
		);

	static LRESULT CALLBACK WndProc(
		HWND hWnd,
		UINT msg,
		WPARAM wParam,
		LPARAM lParam
		);

	//IDirect3DDevice9* Device ;
	RenderSystem * renderSys;
};
